package cc.zy.base.hr.mapper;

import cc.zy.base.hr.entity.ScoreIntegral;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ScoreIntegralMapper extends BaseMapper<ScoreIntegral> {

    /**
     * 查找积分记录
     *
     * @param page    分页对象
     * @param scoreIntegral 标签对象，用于传递查询条件
     * @return IPage
     */
    <T> IPage<ScoreIntegral> findScoreIntegralDetailPage(Page<T> page, @Param("scoreIntegral") ScoreIntegral scoreIntegral);

    /**
     * 获取积分记录数目
     *
     * @param scoreIntegral 标签对象
     * @return IPage
     */
    long countScoreIntegralDetail(@Param("scoreIntegral") ScoreIntegral scoreIntegral);

    /**
     * 通过ID查找具体积分记录
     *
     * @return 积分
     */
    ScoreIntegral findByScoreIntegralId(Integer scoreIntegralId);

    /**
     * 查找积分记录详细信息
     *
     * @param scoreIntegral 院校对象，用于传递查询条件
     * @return List<scoreIntegral>
     */
    List<ScoreIntegral> findScoreIntegralDetail(@Param("scoreIntegral") ScoreIntegral scoreIntegral);

    /**
     * 查询全部积分记录不带分页
     */
    List<ScoreIntegral> findScoreIntegralNotPage(@Param("scoreIntegral") ScoreIntegral scoreIntegral);

    /**
     * 判断积分来源与获取积分员工ID是否重复
     *
     * @return
     */
    List<ScoreIntegral> isRepetitive(@Param("staffId") Integer staffId, @Param("scoreDesc") String scoreDesc);

    /**
     * 查询不存在的id
     *
     * @return
     */
    Integer findScoreIntegralNullId();

}
